<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <script>
        
        // class Animal extends Object{
            
        //     static Afun(){
        //         console.log("Afun");
        //     }
        //     Afun2(){
        //         console.log("Afun2");
        //     }
        // }
        // class Dog extends Animal{

        //     static Dfun(){
        //         console.log("Dfun");
        //     }
        //     Dfun2(){
        //         console.log("Dfun2");
        //     }
        // }

        // let dog= new Dog();

        // // 静态方法 Reflect.getPrototypeOf()与Object.getPrototypeOf()方法是一样的。都是返回指定对象的原型（即，内部的 [[Prototype]]属性的值）。

        // // console.log(dog.__proto__==Dog.prototype) // Animal {constructor: ƒ==>constructor: class Dog, Dfun2: ƒ}
        // // console.log(Dog.prototype.__proto__==Animal.prototype); // {constructor: ƒ==>constructor: class Animal, Afun2: ƒ}

        // // console.log(Dog.prototype) 
        // // console.log(Animal.prototype) 

        // // let animal =new Animal();
        // // console.log(Animal.prototype.__proto__==Object.prototype); //Object.prototype

        // console.log(Reflect.getPrototypeOf(Animal)==Object);

        // // console.log(Reflect.getPrototypeOf(Dog)==Animal); // 从子类上获取父类。 返回指定对象的原型 
        // // console.log(Reflect.getPrototypeOf(Dog)==Function.prototype); // 从子类上获取父类。 返回指定对象的原型   
        // // console.log(Reflect.getPrototypeOf(dog)==Dog.prototype); // 从子类上获取父类。 返回指定对象的原型
        // // console.log(Reflect.getPrototypeOf(dog)); // 从子类上获取父类。 返回指定对象的原型   

        // // dog.Afun2();
        // // dog.Dfun2();

        // // dog.Afun();// 报错
        // // dog.Dfun();// 报错

        class A{

        }
        let a =new A();
        console.log(A);
        console.log(A.prototype);
        console.log(Reflect.getPrototypeOf(a)==A.prototype);
        console.log(Reflect.getPrototypeOf(A)==Function.prototype);

    </script>
</head>

<body>

</body>

</html>